As manufacturers have implemented more and more circuit elements in smaller and smaller silicon substrate surface areas, engineers and designers developed hardware and software tools to automate much of the integrated circuit design and manufacturing process. While there are several approaches to developing integrated circuits, a primary method today uses standard cells in the development process. The complexity of standard cells can range from simple logic gates, such as those found in gate arrays, to block-level components such as random access memories (RAMs), read only memories (ROMs), and programmable logic arrays (PLAs).
Once a designer arranges the different circuits and function blocks in schematic form for an electronic circuit, signals often need to be transmitted between different circuit blocks. Sometimes, the signals must be transmitted relatively long distances, such as half way across a physical chip die. A series of computer-aided design tools generate a net list of standard cells and the interconnections between the cells. A floor planner or placement tool uses the net list to place the standard cells at specific locations in an integrated circuit layout pattern. After generating this layout pattern, software tools, called routers, determine the physical locations of conducting paths between the cells.
Designers must frequently focus on timing requirements of the integrated circuit elements before, during, and after placing the elements and selecting the routes of the interconnections. To address the timing constraints, designers may use one or more electronic design automation (EDA) tools to perform timing analyses on the integrated circuit designs. Based on the physical layout, the software tools may determine when signals arrive too early or too late at the ends of timing paths, which may affect the sequential logic or other logic at the ends of the timing paths. To address the timing issues, designers may move or resize circuit elements in timing paths, delete or insert buffers, restructure logic of one or several of the circuits, or re-synthesize the integrated circuit design. These activities, such as activities involving the placement of inserting/removing/resizing buffers, can be among the most challenging and time consuming in the design process, since many of the activities require extensive human intervention with limited automation.